<?php
/**
 * Created by PhpStorm.
 * User: qingyun
 * Date: 17/5/2
 * Time: 上午8:36
 *
 * ━━━━━━━━━━━━━━神兽出没━━━━━━━━━━━━━━━━━
 *
 *　　　　　　　  ┏┓      ┏┓+ +
 *　　　　　　　┏━┛┻━━━━━━┛┻┓ + +
 *　　　　　　　┃　　　┻　　　┃ 　
 *　　　　　　　┃　　　━　　  ┃ ++ + + +
 *　　　　　　　┃ ████━████  ┃+
 *　　　　　　　┃　　　　　　 ┃ +
 *　　　　　　　┃　　　┻　　　┃
 *　　　　　　　┃　　　　　　 ┃ + +
 *　　　　　　　┗━━┓　　  ┏━━┛
 *　　　　　　　　　┃　　　┃　　　　　　　　　　　
 *　　　　　　　　　┃　　　┃ + + + +
 *　　　　　　　　　┃　　　┃　　　　Code is far away from bug with the caonima protecting　　　　　　　
 *　　　　　　　　　┃　　　┃ + 　　　　神兽保佑,代码无bug　　
 *　　　　　　　　　┃　　　┃
 *　　　　　　　　　┃　　　┃　　+　　　　　　　　　
 *　　　　　　　　　┃　 　 ┗━━━━━━━┓ + +
 *　　　　　　　　　┃ 　　　　　　 　┣┓
 *　　　　　　　　　┃ 　　　　　　 　┏┛
 *　　　　　　　　　┗┓┓┏━━━━━━━━┳┓┏┛ + + + +
 *　　　　　　　　 　┃┫┫　      ┃┫┫
 *　　　　　　 　　　┗┻┛      　┗┻┛+ + + +
 *
 * ━━━━━━━━━━━神兽附体━━BUG退散━━━━━━━━━━━
 */

namespace Admin\Controller;
use Common\Controller\AdminBaseController;

class ProductController extends AdminBaseController{
    /**
     * 产品列表
     */
    public function index(){
        $this -> display();
    }
    public function pageList(){
        $page = I('post.page/d',1);
        $title = I('post.title/s','');

        $whereSql = empty($title) ? '' : 'title like "%' . $title . '%" or keyword like "%' . $title . '%"';

        $product = M('product');

        // 查询满足要求的总记录数
        $count = $product->where($whereSql) -> count();

        $limit = 8;
        $pages = ceil($count / $limit);
        $start = empty($page - 1) ? 0 : (($page - 1) * $limit);

        $list = $product  -> alias('p') -> field('p.*,c.title cate') -> join('left join dx_category c on p.cate_id = c.id') -> order('p.id') -> limit($start.','.$limit) -> select();
        
        //  传给laypage分页js 的列表内容
        $content = '';
        foreach($list as $value){
            $content .= '<tr><td>' . $value['id'] . '</td><td>' . $value['title'] . '</td>';
//            if(empty($value['images'])){
//                $content .= '<img src="/Public/Admin/img/profile_small.jpg" style="width: 30px; height: 30px;">';
//            }else{
//                $content .= '<img src="/' . $value['images'] . '" style="width: 50px; height: 50px;">';
//            }
            $content .= '<td>' . $value['code'] . '</td><td>' . $value['cate'] . '</td><td>' . $value['years'] . '</td><td>' . $value['size'] . '</td><td>' . $value['weight'] . '</td><td>' . mb_substr($value['keyword'],0,3,'utf-8') . '...</td><td>' . mb_substr(trim($value['content'], '&lt;p&gt;'),0,9,'utf-8') . '...</td><td>' . $value['tel'] . '</td><td><div class="col-md-12"><a class="btn btn-sm btn-outline btn-warning" href="' . U('Admin/product/edit/id/' .$value['id']) . '"><i class="fa fa-edit"></i> 修改</a><a class="btn btn-sm btn-outline btn-danger" href="javascript:del(' . $value['id'] . ')"><i class="fa fa-trash-o"></i> 删除</a></div></td></tr>';
        }
        $data = [
            'pages' => $pages,
            'content' => $content,
        ];
        echo json_encode($data);
    }

    /**
     * 产品添加
     */
    public function add(){
        $category = M('Category') -> where(['type' => 2, 'status' => 1]) -> field('id,pid,title') -> select();
        $category = get_tree($category);
        $this -> assign('category', $category);
        $this -> display();
    }
    /**
     * 产品修改
     */
    public function edit(){
        $id = I('get.id/d',0);
        $productInfo = M('Product') -> field('id,title,code,images,cate_id,years,size,weight,keyword,content,tel') -> where(['id' => $id]) -> find();
        $picture = explode(',',rtrim($productInfo['images'],','));

        $category = M('Category') -> where(['type' => 2, 'status' => 1]) -> field('id,pid,title') -> select();
        $category = get_tree($category);
//        dump($category);exit;
        $this -> assign('picture',$picture);
        $this -> assign('category', $category);
        $this -> assign('productInfo',$productInfo);
        $this -> display();
    }

    /**
     * 添加修改保存
     */
    public function Save(){
        if(IS_POST && IS_AJAX){
//            dump($_POST);exit;
            $id = I('post.id/d',0);

            $title = I('post.title/s','');
            $cate_id = I('post.cate_id/d',0);
            $years = I('years/s','');
            $size = I('post.size/s','');
            $weight = I('post.weight/s','');
            $keyword = I('post.keyword/s','');
            $content = I('post.content/s','');
            $tel = I('post.tel/s','');
            $images = I('post.images/s','');

            if(!$title){
                $this -> ajaxReturn(['status' => 1, 'msg' => '产品名称不能为空']);
            }
            if(!$keyword){
                $this -> ajaxReturn(['status' => 1, 'msg' => '产品关键词不能为空']);
            }
            if(!$content){
                $this -> ajaxReturn(['status' => 1, 'msg' => '产品介绍不能为空']);
            }
            if(!$tel){
                $this -> ajaxReturn(['status' => 1, 'msg' => '联系电话不能为空']);
            }

            /** 单图上传图片
             * $images = '';
            if(0 != $_FILES['images']['size']){
                $images = uploadFile($_FILES['images'], 'Upload/product/');
            }
            if(is_array($images)){
                $this -> ajaxReturn($images);
            }*/

            //  获取添加管理员id
            $mid = session('user.uid');

            if(!$id){
                /**
                 * ID为空 添加
                 */
                //  生成编号
                $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                $code = '';
                for($i = 0; $i < 4; $i++){
                    $code .= $str[mt_rand(0, (strlen($str) - 1))];
                }
                $code = $code . $cate_id . time();

                $data = [
                    'id' => $id,
                    'title' => $title,
                    'cate_id' => $cate_id,
                    'images' => $images,
                    'code' => $code,
                    'years' => $years,
                    'size' => $size,
                    'weight' => $weight,
                    'keyword' => $keyword,
                    'content' => $content,
                    'tel' => $tel,
                    'mid' => $mid
                ];

                $product = M('Product');
                $isOk = $product -> add($data);
            }else{
                /**
                 * ID不为空  修改
                 */
                $image = M('product')->field('images')->where(['id' => $id])->find();
                $images .= $image['images'];
                $code = I('post.code/s','');
                $data = [
                    'id' => $id,
                    'title' => $title,
                    'code' => $code,
                    'cate_id' => $cate_id,
                    'images' => $images,
                    'years' => $years,
                    'size' => $size,
                    'weight' => $weight,
                    'keyword' => $keyword,
                    'content' => $content,
                    'tel' => $tel,
                    'mid' => $mid
                ];
                $product = M('Product');
                $isOk = $product -> where(['id' => $id]) -> add($data,[],true);
            }

            if(!$isOk){
                $this -> ajaxReturn(['status' => 1, 'msg' => '操作失败']);
            }
            $this -> ajaxReturn(['status' => 0, 'msg' => '操作成功']);
        }else{
            $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
        }
    }

    /**
     * 图片上传
    */
    public function image_upload(){
        $images = uploadFile($_FILES['file'],'Upload/product/');
        if(is_array($images)){
            return $images;
        }
        $this->ajaxReturn(['status' => 0, 'msg' => '成功','data' => $images]);
    }
    /**
     *修改图片删除处理
     */
    public function imgdel(){
        if(IS_POST){
            $pic = I('post.pic/d');
            $id = I('post.id/d',0);
            if(empty($id)){
                $this->ajaxReturn(['非法操作!']);
            }
            $info = M('product')->where(['id' => $id])->find();
            array_pop($info['images']);
            $picture = explode(',',$info['images']);
            unset($picture[$pic]);
            $litpic = implode(',',$picture);
            $result = M('product')->where(['id'=>$id])->save(['images' => $litpic]);
            if($result){
                $this->ajaxReturn(['操作成功']);
            }else{
                $this->ajaxReturn(['操作失败']);
            }

        }

    }
    /**
     * 删除产品
     */
    public function del(){
        if(IS_AJAX && IS_POST){
            $id = I('post.id/d');
            if(empty($id)){
                $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
            }
            $product = M('product');

            //  删除产品表信息
            $isDel = $product -> delete($id);

            if(!$isDel){
                $this -> ajaxReturn(['status' => 1, 'msg' => '删除失败']);
            }
            $this -> ajaxReturn(['status' => 0, 'msg' => '删除成功']);
        }else{
            if(empty($id)){
                $this -> ajaxReturn(['status' => 1, 'msg' => '非法操作']);
            }
        }
    }
}